Delegation can allow an entity to perform tasks on behalf of another entity. With delegation, a developer may leverage the knowledge and work of another that may be more experienced in an area. In some environments, a user may provide their credentials to a service to act on behalf of the user. While this allows the service to perform actions as the user it also gives the service full access to the user's account, which may not be desirable. For example, a user can provide a credential to a load balancing service and the load balancing service can use the credential to manage load balancing for services associated with the user, as all actions are performed under the username. In other environments, a service may be granted permissions to access resources owned by another. The service receives permissions required to manage the resources assigned, such as through an access control list.
However, tracking delegation and using delegation can be difficult. In the case of distributing a username and password, all actions may appear to be performed by a user because the user's credential may be used to determine the actor logged as performing the action. In addition, upon any change to the credential, the credential must be redistributed to services that use the credential. For example, a database administrator may give its credentials to a service for managing databases. Changes would be attributed to the database administrator credential and not the service actually using the credential. In the case of access control lists, a service is granted access to a resource but the reasons for access may not be clear. For example, a service may be granted access to a file by two administrators for different reasons, such as logging and analytics. When the service accesses the file, it may be unclear under which permission the file is accessed as the service merely has permission to access the file. In some systems, delegation may not be possible. While various techniques have been employed to effectively perform delegation, due to the complexity of the tasks, the employed techniques are of varied success.